<?php
    header('content-type:text/html;charset=utf-8');
    // 这里的代码封装着操作数据库的方法
    // 定义一些常量
    define('HOST','127.0.0.1');
    define('UNAME','root');
    define('PWD','root');
    define('DB','z_baixiu');

    // 封装增删改的方法
    // 返回值：成功true,失败false
    function my_exec($sql){

        // 链接数据库,链接数据库成功返回值是个对象，反之是false
        $link = mysqli_connect(HOST,UNAME,PWD,DB);
        if (empty($link)) {
            return [
                "state"=>10,
                'txt'=>'数据库链接失败'
            ];  
        }else {
            // return [
            //     "state"=>20,
            //     'txt'=>'数据库链接成功'
            // ];             
        }

        // 执行sql串
        $result = mysqli_query($link,$sql);
        // echo '<pre>';
        // print_r($result);
        // echo '</pre>';
        if ($result) {
            // 关闭数据库
            mysqli_close($link);
            return [
                "state"=>200,
                'txt'=>'执行串执行成功'
            ];
        }else {
            // 关闭数据库
            mysqli_close($link);
            return [
                "state"=>100,
                'txt'=>'执行串执行失败'
            ];
        }
    }

    // 封装查询的方法
    function my_query($sql){

        // 链接数据库
        $link = mysqli_connect(HOST,UNAME,PWD,DB);
        if ($link) {
            // echo '执行成功';
        }else {
            return [
                "state"=>10,
                'txt'=>'数据库链接失败'
            ];           
        }

        // 执行sql串
        $result = mysqli_query($link,$sql); //查询语句，成功是结果集，失败是false

        // 获取结果集长度
        $count = mysqli_num_rows($result);

        // echo '<pre>';
        // print_r($result);
        // echo '</pre>';

        if (!empty($count)) {

            // 处理结果集
            // 1.获取结果集长度
            $count = mysqli_num_rows($result);
            // 2.创建容器 用于存储结果集中提取的关联数组
            $data=[];
            // 3.向容器中添加数据
            for ($i=0; $i < $count; $i++) { 
                $data[]=mysqli_fetch_assoc($result);
            }

            // 返回查询数据
            return $data;

        }else {
            return [
                "state"=>100,
                'txt'=>'执行串执行失败'
            ];
        }
    }

    // $result = my_query('select * from users where email="123@13"');
    // echo '<pre>';
    // print_r($result);
    // echo '</pre>';

    // 封装登录拦截方法
    function loginCheck(){

        if (empty($_COOKIE['PHPSESSID'])) {
            // 如果cookie中没有PHPSESSID，跳转登录页
            header('location: ./login.php');
            die();
        }else {
            // 如果有cookie基于超全局变量$_SESSION获取服务器的同名文件对象，判断里面是否存在标记(比如邮箱账号)
            // ·标记是只有登录成功过才生成的
            // 使用$_SESSION前必须sessionstart()
            session_start();
            // 服务器会根据浏览器传递过来的$_COOKIE['PHPSESSID']去服务本本地取对应的同名文件
            if (empty($_SESSION['user_id'])) {
                header('location: ./login.php');
                die();
            }
        }

        
    }

?>